接下來要製作的是【Quick Reply】功能是,可以提供多可選項,讓用戶能快速選擇需要的回覆,以減少客戶打字,也可以方便我們管理客戶發送的訊是能格式一至,好方便整理。
通常可以作為,日期或時間的選項。
【line bot sdk python:quickreply 程式碼】
text_message = TextSendMessage(text='Hello, world',
quick_reply=QuickReply(items=[
QuickReplyButton(action=MessageAction(label="label", text="text"))
]))
然後在service.py上定義一個service_select_event,並將剛剛的程式碼貼入。
def service_select_event(event):
text_message = TextSendMessage(text='Hello, world',
quick_reply=QuickReply(items=[
QuickReplyButton(action=MessageAction(label="label", text="text"))
]))
line_bot_api.reply_message(
event.reply_token,
[text_message]
)
同時也又看到QuickReply、QuickReplyButton出現紅底波浪紋,所以也要到line_bot_api上匯入這兩個,這樣紅底波浪就會消失。
這樣初步建立好之後,我需要讓用戶選擇日期,所以我需要做幾個配置。
建立資料集,以及取得今天日期,所以在添加以下程式碼。
data = dict(parse_qsl(event.postback.data))
quick_reply_buttons = []
today = datetime.datetime.today().date()
再來設置一個for迴圈,因為是要做預約功能,所以我要產出讓客戶選擇包含今天的這七天日期給客戶選擇,所以我設定(1, 8),這樣設定是會讓他抓到8-1的數字,也就是會出1,2,3,4,5,6,7這樣。
for x in range(1, 8):
day = today + datetime.today(days=x)
在來就是透過剛剛的迴圈來建立button,button的action是使用PostbackAction,依序是出現日期選項,然後客戶回傳要預約的日期,最後回傳data。最後再透過先前建立的text_message進行開場問話。
quick_reply_button = QuickReplyButton(
action=PostbackAction(label=f'{day}',
text=f'I would like to make an appointment for the day of {day}',
data=f'action=select_time&service_id={data["service_id"]}&data={data}')
)
quick_reply_button.append(quick_reply_button)
在來回到主程式app.py,如果action是select_date,這樣就會呼叫service_select_event的程式。
elif data.get('action') == 'select_date':
service_select_event(event)
print('date:', data.get('date'))
以上就是Quick Reply的設置。
下一篇,後續設置